<!DOCTYPE html>
<html lang="en">
	<head>
		<title>Recaf - modern bytecode editor</title>
		<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
		<meta name="viewport" content="width=device-width">
		<meta name="description" content="Recaf is a modern java bytecode editor using Objectweb's ASM and JavaFX.">
		<meta name="keywords" content="java,bytecode,editor,recaf,reverse engineering">
		<link rel="icon" type="image/x-icon" href="favicon.ico"/>
		<link href="https://fonts.googleapis.com/css?family=Roboto:300" rel="stylesheet">
		<link rel="stylesheet" href="css/style.css">
		<link rel="stylesheet" href="css/code.css">
	</head>
	<body>
		<header>
			<div class="beam container-wide">
				<div class="box-left">
					<a href="index.html"><div class="logo"></div></a>
				</div>
				<div class="box-right">
					<nav>
						<a href="index.html">Home</a>
						<a href="documentation.html">Documentation</a>
						<a href="features.html">Features</a>
						<a href="https://github.com/Col-E/Recaf">Github</a>
					</nav>
				</div>
			</div>
		</header>
		<section id="content">
			<h1>Updating and compiling with Java 9+</h1>
			<h2>Why are the release binaries using Java 8?</h2>
			<p>Seeing that Java 8 is still very popular and lots of people have not yet moved to later versions <i>(Let alone know that new versions exist)</i> the builds that are provided on github will be based on Java 8.</p>
			<h2>Can I use Java 11 or newer to run Recaf?</h2>
			<p>Yes. As of <span class="code">1.14.0</span> Recaf can patch itself when it detects it's runnin on JDK 11 or newer. This will download dependencies and create a patched jar, which will immediately be invoked after the download process finishes.</p>
			<h2>Compiling</h2>
			<p>Alternatively you can compile the source yourself. The maven configuration file <span class="code">pom.xml</span> has <i>"profiles"</i> that are loaded when you execute it with different versions of Java on your system. These profiles allow maven to determine which version-specific dependencies to download and what flags to send to the compiler. Make sure you have the correct JDK version installed and that it is on your system path.</p>
			<p>After downloading Recaf's source you can compile with <span class="code">mvn package</span>.<br>
			Your compiled jar will be located in: <span class="code">target/recaf-$VERSION-jar-with-dependencies.jar</span></p>
			<p><b>Note:</b> Only Long-Term-Service (LTS) versions of Java are supported. This means if you are on Java 9/10 you will need to either upgrade to Java 11+ or downgrade to the latest Java 8.</p>
		</section>
	</body>
</html>